﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace WindowsGame1
{

    class Inimigo
    {
        public static List<Inimigo> inimigos = new List<Inimigo>();

        int vel = 2;
        int pos;
        Random random;

        public Rectangle posicao;
        Texture2D textura;

        GameWindow window;
        public Inimigo()
        {
        }
        public Inimigo(ContentManager content, GameWindow window)
        {
            this.window = window;
            random = new Random();
            pos = random.Next(1,5);
            textura = content.Load<Texture2D>("inimigo1");
            posicao.Width = textura.Width;
            posicao.Height = textura.Height;
            if (pos == 1)
            {
                posicao.X = 0;
                posicao.Y = random.Next(window.ClientBounds.Height / 2 - 125, window.ClientBounds.Height / 2 + 126);
            }
            if (pos == 2)
            {
                posicao.Y = 0;
                posicao.X = random.Next(window.ClientBounds.Width / 2 - 215, window.ClientBounds.Width / 2 + 216);
            }
            if (pos == 3)
            {
                posicao.X = window.ClientBounds.Width;
                posicao.Y = random.Next(window.ClientBounds.Height / 2 - 125, window.ClientBounds.Height / 2 + 126);
            }
            if (pos == 4)
            {
                posicao.Y = window.ClientBounds.Height;
                posicao.X = random.Next(window.ClientBounds.Width / 2 - 215, window.ClientBounds.Width / 2 + 216);
            }
        }

        public void Update()
        {
            for (int i = 0; i < inimigos.Count; i++)
            {
                #region Mover
                if (inimigos[i].pos == 1)
                {
                    inimigos[i].posicao.X += vel;
                }
                if (inimigos[i].pos == 2)
                {
                    inimigos[i].posicao.Y += vel;
                }
                if (inimigos[i].pos == 3)
                {
                    inimigos[i].posicao.X -= vel;
                }
                if (inimigos[i].pos == 4)
                {
                    inimigos[i].posicao.Y -= vel;
                }
                #endregion
                #region Limites
                if (inimigos[i].posicao.X > inimigos[i].window.ClientBounds.Width + 1)
                {
                    inimigos.RemoveAt(i);
                }
                if (inimigos[i].posicao.X < -1)
                {
                    inimigos.RemoveAt(i);
                }
                if (inimigos[i].posicao.Y > inimigos[i].window.ClientBounds.Height + 1)
                {
                    inimigos.RemoveAt(i);
                }
                if (inimigos[i].posicao.Y < -1)
                {
                    inimigos.RemoveAt(i);
                }
                #endregion
            }
        }

        public void Draw(SpriteBatch spriteBatch)
        {
            for (int i = 0; i < inimigos.Count; i++)
            {
                spriteBatch.Draw(inimigos[i].textura, inimigos[i].posicao, Color.White);
            }

        }

        public void Remover_Inimigos()
        {
            for (int i = 0; i < inimigos.Count; i++)
            {
                inimigos.RemoveAt(i);
            }
        }

    }

}
